package top.whysu.gps.service.system;

import top.whysu.gps.dto.page.PagenationDataDTO;
import top.whysu.gps.dto.system.RoleDTO;
import top.whysu.gps.dto.system.RoleQueryDTO;
import top.whysu.gps.po.system.RolePO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 系统角色业务接口类
 */
public interface RoleService {

	/**
	 * 新增角色
	 *
	 * @param roleDTO 角色传输对象
	 */
	void insertRole(RoleDTO roleDTO);

	/**
	 * 查看角色
	 *
	 * @param id 主键
	 * @return
	 */
	RoleDTO selectRole(BigDecimal id);

	/**
	 * 修改角色
	 *
	 * @param roleDto 角色传输对象
	 */
	void updateRole(RoleDTO roleDto);

	/**
	 * 查看角色列表
	 *
	 * @param queryDTO 查询参数
	 * @return
	 */
	PagenationDataDTO<RolePO> selectPageRole(RoleQueryDTO queryDTO);

	/**
	 * 根据用户ID，查询相应用户的角色
	 * @param userId
	 * @return
	 */
	List<RolePO> selectRolesByUserId(BigDecimal userId);

	/**
	 * 根据角色标志查询角色信息
	 * @param roleSign
	 * @return
	 */
	RolePO selectByRoleSign(String roleSign);

	/**
	 * 删除角色
	 *
	 * @param id 主键
	 */
	void deleteRole(BigDecimal id);

	/**
	 * 角色下拉框查询
	 * @return
	 */
	List<Map<String, Object>> selectListRole();
}
